package concurso.cliente;

import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;

import concurso.persistencia.excepciones.PersistenciaException;
import concurso.persistencia.Propiedades;

public class Controlador {
	static private Controlador instancia = null;
	private IFachadaJueces iFacJue  = null;
	private IFachadaPublico iFacPub = null;
	
	private Controlador() throws MalformedURLException, RemoteException, NotBoundException, PersistenciaException{

		String srv = Propiedades.getInstancia().obtenerPropertiesServidor();
		iFacJue = (IFachadaJueces) Naming.lookup(srv + "/concursoJ");
		iFacPub = (IFachadaPublico) Naming.lookup(srv + "/concursoP");
		
		/*iFacJue = (IFachadaJueces) Naming.lookup("//192.168.1.134:1099/concursoJ");
		iFacPub = (IFachadaPublico) Naming.lookup("//192.168.1.134:1099/concursoP");*/
		
		/*iFacJue = (IFachadaJueces) Naming.lookup("//" + Configuracion.getInstancia().getProperty(Configuracion.SERVIDOR) + 
				  ":" + Configuracion.getInstancia().getProperty(Configuracion.PUERTO) +
				  "/certamen");
		
		iFacPub = (IFachadaPublico) Naming.lookup("//" + Configuracion.getInstancia().getProperty(Configuracion.SERVIDOR) + 
				  ":" + Configuracion.getInstancia().getProperty(Configuracion.PUERTO) +
				  "/certamen");*/
	}
	
	public static Controlador getInstancia() throws MalformedURLException, RemoteException, NotBoundException, PersistenciaException{
		if(instancia == null) 
			instancia = new Controlador();
		return instancia;
	}
	
	public IFachadaJueces getInterfazJueces(){
		return iFacJue;
	}
	
	public IFachadaPublico getInterfazPublico(){
		return iFacPub;
	}
}
